// #include<vector>
// #include<limits>
// #include<cstddef>
// #include<iostream>
// #include<sstream>
// #include<map>
// #include<algorithm>
// using namespace std;

// class GraphMin{
// public:
//     int MinFeature(vector<int> px){
//         auto minSum = std::numeric_limits<int>::max();
//         auto c = px[4];
//         auto offset = 0;
//         auto countG = 0;
//         vector<int> neibors{
//             0,1,2, 5,8,7,6,3,
//         };

//         while(countG < 4) {
//             auto coff = 1;
//             auto sum = 0;
//             // std::cout << countG << ":" << neibors.size() <<endl;
//             for(int i = neibors.size()-1; i >= 0; i--){
//                 auto pz = ((i+offset)+neibors.size()) % neibors.size();
//                 auto xr = c^(px[neibors[pz]]);
//                 auto xrOff = xr*coff;
//                 sum += xrOff;
//                 coff *= 2;
//                 // std::cout << px[neibors[pz]] << "IV:"<< pz << ":" << neibors[pz] <<":"<< i <<":" << offset <<":"<< xr <<":" << coff<<":"<< xrOff <<endl;
//             }
//             // std::cout << sum << endl;
//             minSum = std::min(minSum, sum);
//             countG++;
//             offset -= 2;
//         }

//         return minSum;
//     }
// };
// int main(int, char**) {
//     string nn;
//     getline(cin, nn);
//     auto nV = std::stoi(nn);
//     for(auto i = 0; i < nV; i++){
//         // string data("011010001");
//         // string data("011001001");
//         string data;
//         getline(cin, data);
//         // string data("000000000");
//         vector<int> d;
//         for(auto i = 0; i < data.size(); i++){
//             d.push_back(data[i]-'0');
//         }
//         GraphMin gm;
//         auto r = gm.MinFeature(d);
//         std::cout << r << endl;
//     }

// }